#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cmath>

using namespace std;

#include "RNG.h"        // random number generator ran2 from numerical recepies
#include "hash.h"       // hash table
#include "walks.h"      // walks class
#include "sym_group.h"  //symmetry group on simple lattice
#include "dim_log.h"    // log for acceptance rate and end to end distance
#include "walk_list.h"  // list of self avoiding walks
#include "density.h"    // density matrix
#include "boundaries.h"


int main ()
{
  int i,j,count;
  int D=3;
  int N0=10;
  int level=3;
  int N=pow(2,level)*N0;
  Walk walk1(N,D);
  Walk_list list1(N0,D);
  Table table1(D,N);
  int * steps;
  int tip_pos[3]={0,0,0};
  ofstream out_file;
  //list1.make_list("list.txt");
  //list1.dimerization(walk1,level,table1);
  Sym_group sym_group1(D);
  out_file.open("output.txt");
  steps = new int[N];
  int * fun;
  fun=new int[N0+1];
  for (i=0;i<N0+1;i++) {
	  fun[i]==0;
  }
  for (i=0;i<N0;i++) {
    steps[i]=5;
  }
  Walk walk2(N0,D);
  
  walk2.make_random();
  //walk2.read_steps(steps);
  walk2.detailed_print();
  walk2.kantor_fun(fun);
  cout << "Kantor function: \n";
  for (i=0;i<N0+1;i++) {
    cout << fun[i] << " ";
  }
  cout << "\n";
  
  delete [] steps;
  delete [] fun;
  out_file.close();
  //cout <<"\ndone\n";
  return 1;
}
